package com.cictec.middleware.core.entity;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;

import com.cictec.middleware.commons.utils.DateUtils;

@Table(name = "t_bus_run_schedule_day")
public class DeparterSchedule implements Serializable {
	
	@Transient
	private Date departureTime;
	@Transient
	private String lineUuid;
	@Transient
	private String lineName;
	@Transient
	private String drvName;
	@Transient
	private String busPlateNumber;
	@Transient
	private String busSelfCode;
	
    public Date getDepartureTime() {
		return departureTime;
	}

	/** 【非表字段，不参与该表更新】*/
	public void setDepartureTime(Date departureTime) {
		
		this.brsdDepartureTime = DateUtils.formatDateTimeMinute(departureTime);
		this.departureTime = departureTime;
	}
	

	public String getLineUuid() {
		return lineUuid;
	}

	/** 【非表字段，不参与该表更新】*/
	public void setLineUuid(String lineUuid) {
		this.lineUuid = lineUuid;
	}

	public String getLineName() {
		return lineName;
	}
	public void setLineName(String lineName) {
		this.lineName = lineName;
	}

	public String getDrvName() {
		return drvName;
	}
	public void setDrvName(String drvName) {
		this.drvName = drvName;
	}
	public String getBusPlateNumber() {
		return busPlateNumber;
	}
	public void setBusPlateNumber(String busPlateNumber) {
		this.busPlateNumber = busPlateNumber;
	}
	public String getBusSelfCode() {
		return busSelfCode;
	}
	public void setBusSelfCode(String busSelfCode) {
		this.busSelfCode = busSelfCode;
	}


	/**
     * 运营子表主键
     */
    @Id
    @Column(name = "brsd_uuid")
    private String brsdUuid;

    /**
     * 主表ID
     */
    @Column(name = "brsd_brs_uuid")
    private String brsdBrsUuid;

    /**
     * 发车时间
     */
    @Column(name = "brsd_departure_time")
    private String brsdDepartureTime;

    /**
     * 车辆ID
     */
    @Column(name = "brsd_bus_uuid")
    private String brsdBusUuid;

    /**
     * 司机ID
     */
    @Column(name = "brsd_drv_uuid")
    private String brsdDrvUuid;

    /**
     * 班次
     */
    @Column(name = "brsd_shift")
    private Integer brsdShift;

    /**
     * 运行模式（1：上行、2：下行）
     */
    @Column(name = "brsd_type")
    private String brsdType;

    @Column(name = "brsd_trip")
    private Integer brsdTrip;

    /**
     * 该班次是否取消;1：取消；0正常：
     */
    @Column(name = "brsd_isdel")
    private Integer brsdIsdel;

    /**
     * 最后修改时间
     */
    @Column(name = "brsd_last_update_time")
    private Date brsdLastUpdateTime;

    /**
     * 是否下发；0：未下发；1：下发
     */
    @Column(name = "brsd_is_send")
    private Integer brsdIsSend;

    /**
     * 实际发车时刻
     */
    @Column(name = "brsd_actrual_departure_time")
    private Date brsdActrualDepartureTime;

    /**
     * 发车标志 ， 0-未发车 1-已经发车
     */
    @Column(name = "brsd_departure_flag")
    private Integer brsdDepartureFlag;

    /**
     * 到达最后一站的时间
     */
    @Column(name = "brsd_actrual_arrave_time")
    private Date brsdActrualArraveTime;

    /**
     * 当前到站站点ID
     */
    @Column(name = "brsd_current_ls_uuid")
    private String brsdCurrentLsUuid;

    /**
     * 完成标志 ， 0-未完成 1-已完成
     */
    @Column(name = "brsd_arrave_flag")
    private Integer brsdArraveFlag;

    /**
     * 备注
     */
    @Column(name = "brsd_remarks")
    private String brsdRemarks;

    /**
     * 当前进站时的的虚拟里程表值
     */
    @Column(name = "brsd_current_station_odometer")
    private Double brsdCurrentStationOdometer;

	/**
	 * 【该趟次关联线路】lineUuid
	 */
	@Column(name = "brsd_branch_line_uuid")
	private String brsdBranchLineUuid;

	/**
	 * 【该趟次关联线路】备注类型:0.一般备注,1.包车备注,2.支线备注,3.放空备注,【注】目前没有默认值，所有至判断2、3情况下是其他线路
	 */
	@Column(name = "brsd_remark_type")
	private String brsdRemarkType;

    
    
    private static final long serialVersionUID = 1L;

    /**
     * 获取运营子表主键
     *
     * @return brsd_uuid - 运营子表主键
     */
    public String getBrsdUuid() {
        return brsdUuid;
    }

    /**
     * 设置运营子表主键
     *
     * @param brsdUuid 运营子表主键
     */
    public void setBrsdUuid(String brsdUuid) {
        this.brsdUuid = brsdUuid == null ? null : brsdUuid.trim();
    }

    /**
     * 获取主表ID
     *
     * @return brsd_brs_uuid - 主表ID
     */
    public String getBrsdBrsUuid() {
        return brsdBrsUuid;
    }

    /**
     * 设置主表ID
     *
     * @param brsdBrsUuid 主表ID
     */
    public void setBrsdBrsUuid(String brsdBrsUuid) {
        this.brsdBrsUuid = brsdBrsUuid == null ? null : brsdBrsUuid.trim();
    }

    /**
     * 获取发车时间
     *
     * @return brsd_departure_time - 发车时间
     */
    public String getBrsdDepartureTime() {
        return brsdDepartureTime;
    }

    /**
     * 设置发车时间
     *
     * @param brsdDepartureTime 发车时间
     */
    public void setBrsdDepartureTime(String brsdDepartureTime) {
        this.brsdDepartureTime = brsdDepartureTime == null ? null : brsdDepartureTime.trim();
        this.departureTime = DateUtils.parseDate(this.brsdDepartureTime);
    }

    /**
     * 获取车辆ID
     *
     * @return brsd_bus_uuid - 车辆ID
     */
    public String getBrsdBusUuid() {
        return brsdBusUuid;
    }

    /**
     * 设置车辆ID
     *
     * @param brsdBusUuid 车辆ID
     */
    public void setBrsdBusUuid(String brsdBusUuid) {
        this.brsdBusUuid = brsdBusUuid == null ? null : brsdBusUuid.trim();
    }

    /**
     * 获取司机ID
     *
     * @return brsd_drv_uuid - 司机ID
     */
    public String getBrsdDrvUuid() {
        return brsdDrvUuid;
    }

    /**
     * 设置司机ID
     *
     * @param brsdDrvUuid 司机ID
     */
    public void setBrsdDrvUuid(String brsdDrvUuid) {
        this.brsdDrvUuid = brsdDrvUuid == null ? null : brsdDrvUuid.trim();
    }

    /**
     * 获取班次
     *
     * @return brsd_shift - 班次
     */
    public Integer getBrsdShift() {
        return brsdShift;
    }

    /**
     * 设置班次
     *
     * @param brsdShift 班次
     */
    public void setBrsdShift(Integer brsdShift) {
        this.brsdShift = brsdShift;
    }

    /**
     * 获取运行模式（1：上行、2：下行）
     *
     * @return brsd_type - 运行模式（1：上行、2：下行）
     */
    public String getBrsdType() {
        return brsdType;
    }

    /**
     * 设置运行模式（1：上行、2：下行）
     *
     * @param brsdType 运行模式（1：上行、2：下行）
     */
    public void setBrsdType(String brsdType) {
        this.brsdType = brsdType == null ? null : brsdType.trim();
    }

    /**
     * @return brsd_trip
     */
    public Integer getBrsdTrip() {
        return brsdTrip;
    }

    /**
     * @param brsdTrip
     */
    public void setBrsdTrip(Integer brsdTrip) {
        this.brsdTrip = brsdTrip;
    }

    /**
     * 获取该班次是否取消;1：取消；0正常：
     *
     * @return brsd_isdel - 该班次是否取消;1：取消；0正常：
     */
    public Integer getBrsdIsdel() {
        return brsdIsdel;
    }

    /**
     * 设置该班次是否取消;1：取消；0正常：
     *
     * @param brsdIsdel 该班次是否取消;1：取消；0正常：
     */
    public void setBrsdIsdel(Integer brsdIsdel) {
        this.brsdIsdel = brsdIsdel;
    }

    /**
     * 获取最后修改时间
     *
     * @return brsd_last_update_time - 最后修改时间
     */
    public Date getBrsdLastUpdateTime() {
        return brsdLastUpdateTime;
    }

    /**
     * 设置最后修改时间
     *
     * @param brsdLastUpdateTime 最后修改时间
     */
    public void setBrsdLastUpdateTime(Date brsdLastUpdateTime) {
        this.brsdLastUpdateTime = brsdLastUpdateTime;
    }

    /**
     * 获取是否下发；0：未下发；1：下发
     *
     * @return brsd_is_send - 是否下发；0：未下发；1：下发
     */
    public Integer getBrsdIsSend() {
        return brsdIsSend;
    }

    /**
     * 设置是否下发；0：未下发；1：下发
     *
     * @param brsdIsSend 是否下发；0：未下发；1：下发
     */
    public void setBrsdIsSend(Integer brsdIsSend) {
        this.brsdIsSend = brsdIsSend;
    }

    /**
     * 获取实际发车时刻
     *
     * @return brsd_actrual_departure_time - 实际发车时刻
     */
    public Date getBrsdActrualDepartureTime() {
        return brsdActrualDepartureTime;
    }

    /**
     * 设置实际发车时刻
     *
     * @param brsdActrualDepartureTime 实际发车时刻
     */
    public void setBrsdActrualDepartureTime(Date brsdActrualDepartureTime) {
        this.brsdActrualDepartureTime = brsdActrualDepartureTime;
    }

    /**
     * 获取发车标志 ， 0-未发车 1-已经发车
     *
     * @return brsd_departure_flag - 发车标志 ， 0-未发车 1-已经发车
     */
    public Integer getBrsdDepartureFlag() {
        return brsdDepartureFlag;
    }

    /**
     * 设置发车标志 ， 0-未发车 1-已经发车
     *
     * @param brsdDepartureFlag 发车标志 ， 0-未发车 1-已经发车
     */
    public void setBrsdDepartureFlag(Integer brsdDepartureFlag) {
        this.brsdDepartureFlag = brsdDepartureFlag;
    }

    /**
     * 获取到达最后一站的时间
     *
     * @return brsd_actrual_arrave_time - 到达最后一站的时间
     */
    public Date getBrsdActrualArraveTime() {
        return brsdActrualArraveTime;
    }

    /**
     * 设置到达最后一站的时间
     *
     * @param brsdActrualArraveTime 到达最后一站的时间
     */
    public void setBrsdActrualArraveTime(Date brsdActrualArraveTime) {
        this.brsdActrualArraveTime = brsdActrualArraveTime;
    }

    /**
     * 获取当前到站站点ID
     *
     * @return brsd_current_ls_uuid - 当前到站站点ID
     */
    public String getBrsdCurrentLsUuid() {
        return brsdCurrentLsUuid;
    }

    /**
     * 设置当前到站站点ID
     *
     * @param brsdCurrentLsUuid 当前到站站点ID
     */
    public void setBrsdCurrentLsUuid(String brsdCurrentLsUuid) {
        this.brsdCurrentLsUuid = brsdCurrentLsUuid == null ? null : brsdCurrentLsUuid.trim();
    }

    /**
     * 获取完成标志 ， 0-未完成 1-已完成
     *
     * @return brsd_arrave_flag - 完成标志 ， 0-未完成 1-已完成
     */
    public Integer getBrsdArraveFlag() {
        return brsdArraveFlag;
    }

    /**
     * 设置完成标志 ， 0-未完成 1-已完成
     *
     * @param brsdArraveFlag 完成标志 ， 0-未完成 1-已完成
     */
    public void setBrsdArraveFlag(Integer brsdArraveFlag) {
        this.brsdArraveFlag = brsdArraveFlag;
    }

    /**
     * 获取备注
     *
     * @return brsd_remarks - 备注
     */
    public String getBrsdRemarks() {
        return brsdRemarks;
    }

    /**
     * 设置备注
     *
     * @param brsdRemarks 备注
     */
    public void setBrsdRemarks(String brsdRemarks) {
        this.brsdRemarks = brsdRemarks == null ? null : brsdRemarks.trim();
    }

    /**
     * 获取当前进站时的的虚拟里程表值
     *
     * @return brsd_current_station_odometer - 当前进站时的的虚拟里程表值
     */
    public Double getBrsdCurrentStationOdometer() {
        return brsdCurrentStationOdometer;
    }

    /**
     * 设置当前进站时的的虚拟里程表值
     *
     * @param brsdCurrentStationOdometer 当前进站时的的虚拟里程表值
     */
    public void setBrsdCurrentStationOdometer(Double brsdCurrentStationOdometer) {
        this.brsdCurrentStationOdometer = brsdCurrentStationOdometer;
    }


    /**
     * 【该趟次关联线路】lineUuid
     * @return
     */
	public String getBrsdBranchLineUuid() {
		return brsdBranchLineUuid;
	}

	/**
	 * 【该趟次关联线路】lineUuid
	 * @param brsdBranchLineUuid
	 */
	public void setBrsdBranchLineUuid(String brsdBranchLineUuid) {
		this.brsdBranchLineUuid = brsdBranchLineUuid;
	}

	/**
	 * 【该趟次关联线路】备注类型:0.一般备注,1.包车备注,2.支线备注,3.放空备注,【注】目前没有默认值，所有至判断2、3情况下是其他线路
	 * @return
	 */
	public String getBrsdRemarkType() {
		return brsdRemarkType;
	}

	/**
	 * 【该趟次关联线路】备注类型:0.一般备注,1.包车备注,2.支线备注,3.放空备注,【注】目前没有默认值，所有至判断2、3情况下是其他线路
	 * @param brsdRemarkType
	 */
	public void setBrsdRemarkType(String brsdRemarkType) {
		this.brsdRemarkType = brsdRemarkType;
	}

	@Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", brsdUuid=").append(brsdUuid);
        sb.append(", brsdBrsUuid=").append(brsdBrsUuid);
        sb.append(", brsdDepartureTime=").append(brsdDepartureTime);
        sb.append(", brsdBusUuid=").append(brsdBusUuid);
        sb.append(", brsdDrvUuid=").append(brsdDrvUuid);
        sb.append(", brsdShift=").append(brsdShift);
        sb.append(", brsdType=").append(brsdType);
        sb.append(", brsdTrip=").append(brsdTrip);
        sb.append(", brsdIsdel=").append(brsdIsdel);
        sb.append(", brsdLastUpdateTime=").append(brsdLastUpdateTime);
        sb.append(", brsdIsSend=").append(brsdIsSend);
        sb.append(", brsdActrualDepartureTime=").append(brsdActrualDepartureTime);
        sb.append(", brsdDepartureFlag=").append(brsdDepartureFlag);
        sb.append(", brsdActrualArraveTime=").append(brsdActrualArraveTime);
        sb.append(", brsdCurrentLsUuid=").append(brsdCurrentLsUuid);
        sb.append(", brsdArraveFlag=").append(brsdArraveFlag);
        sb.append(", brsdRemarks=").append(brsdRemarks);
        sb.append(", brsdCurrentStationOdometer=").append(brsdCurrentStationOdometer);
        sb.append(", brsdBranchLineUuid=").append(brsdBranchLineUuid);
        sb.append(", brsdRemarkType=").append(brsdRemarkType);
        sb.append("]");
        return sb.toString();
    }
}